Computer security applications are often the target of attacks by malicious software when the latter run on an infected computer. Such malicious software may try to uninstall computer security applications, bypass their protection mechanisms, or render them useless by removing, or otherwise blocking access to, system resources that they require. In order to defend against such attacks, computer security applications will often install kernel-resident modules that guarantee their integrity as well as ensure the availability of the system resources that they require. However, this approach is not without its own vulnerabilities and drawbacks, and often requires frequent updates in order to maintain compatibility with changing operating system implementations.